package com.forekonw.demo;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

/**
 * 1、MySQL 8.0 以上版本驱动包版本 mysql-connector-java-8.0.16.jar。
 *
 * 2、com.mysql.jdbc.Driver 更换为 com.mysql.cj.jdbc.Driver。
 */
public class JDBCDemo {
    public static void main(String[] args) {
       // 1.加载驱动
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            // 2.获取连接
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/shuju?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC","root","root");
            // 3.获取到Statement /PreparedStatement   创建一个 Statement 对象来将 SQL 语句发送到数据库。
            //statement 用来执行静态的SQL语句,并返回生成结果
            // 1.ResultSet executeQuery(String sql)  执行给定的 SQL 语句，
            //      该语句返回单个 ResultSet 对象。
            // 2.int executeUpdate(String sql) 执行给定 SQL 语句，
            //      该语句可能为 INSERT、UPDATE 或 DELETE 语句，
            //      或者不返回任何内容的 SQL 语句（如 SQL DDL 语句）。
            Statement stmt = conn.createStatement();
            // 4.用来执行SQL语句
//            int a = stmt.executeUpdate("insert into employee(usename,password)values ('fender','123456')");
//            int b = stmt.executeUpdate("delete from employee where id = 1");
//            System.out.println(a);
            //接口 ResultSet  表示数据库结果集的数据表，通常通过执行查询数据库的语句生成。
            //next()  将光标从当前位置向下移一行。
            ResultSet rs = stmt.executeQuery("select * from employee");
            List<Employee> list = new ArrayList<>();
            while (rs.next()){
                //获取当前行的第几列数
                int id = rs.getInt("id");
                String usename = rs.getString("usename");
                String password = rs.getString("password");
                Employee emp = new Employee();
                emp.setId(id);
                emp.setUsername(usename);
                emp.setPassword(password);
                list.add(emp);
//                System.out.println(id + "---"+ usename+ "---"+password);
            }
            for (Employee e :list) {
                System.out.println(e.getId()+"--"+e.getUsername()+"--"+e.getPassword());
            }
            // 5.释放资源
            rs.close();
            stmt.close();
            conn.close();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
